Projet Zuul de conception orientée objet en Java d'un jeu d'aventure
Forum des exercices du projet Zuul
Exercice 7.28.3 (OPTIONNEL)
Prévoir des mécanismes permettant de spécifier ce qui est attendu à l'issue d'une commande et de vérifier que c'est bien le cas. Par exemple, "est-on au bon endroit ?" ou "tel item est-il bien présent ?".
Cet
exercice nécessite un investissement en temps, mais cela peut s'avérer
payant pendant la suite du projet, puisqu'il permettra après chaque
modification du code (et il va y en avoir des grosses !) de vérifier que
le jeu continue de fonctionner parfaitement, et sinon, de détecter les
problèmes au plus tôt.
Un étudiant a écrit :
Cet exercice optionnel part du constat qu'après avoir exécuté la commande test, vous devez vérifier les différents affichages pour savoir si tout s'est bien déroulé.
Il est donc possible qu'un problème vous échappe ou même que vous n'ayez pas le courage de tout vérifier à chaque fois que vous devez exécuter la commande test (c'est-à-dire après chaque exercice entraînant une modification du code).
On peut donc essayer d'imaginer des solutions (dont une syntaxe pour les fichiers de test) pour que la commande test soit en mesure de vérifier des choses automatiquement après l'exécution de chaque commande qu'elle exécute.
Par exemple pour la commande go, si après son exécution on se retrouve bien dans la bonne pièce. Ou par exemple pour la future commande take, si après son exécution l'item a bien disparu de la pièce et se retrouve bien dans l'inventaire du joueur.
Sans que ce soit prescriptif, voici ce qu'un fichier de test pourrait contenir :
...
roomis entree
go north
roomis cuisine
roomhas couteau
take couteau
roomhasnot couteau
playerhas couteau
...
Un étudiant a écrit :
Vous avez raison, c'est plus difficile, c'est pourquoi ce n'était pas demandé ci-dessus.
Ce n'est pas impossible non plus :
on pourrait imaginer qu'une procédure println
dans GameEngine mémorise la
String à afficher avant d'appeler
this.aGui.println .
Cela permettrait ensuite de tester cette String...
Réseaux sociaux